sample(2007:2019,1)
## [1] 2007
Lorsque nous avons lancé la fonction sample nous avons obtenu l’année 2013
library(readxl)
## Warning: package 'readxl' was built under R version 4.0.5
library(readr)
## Warning: package 'readr' was built under R version 4.0.5
df <- read_delim("C:/Users/franc/OneDrive/Bureau/M1/analyse de données/TD/barometredunumerique-2007-2019-fus.csv",
delim = ";", escape_double = FALSE, trim_ws = TRUE)
## New names:
## * MOBHANGS1 -> MOBHANGS1...208
## * MOBHANGS2 -> MOBHANGS2...209
## * MOBHANGS1 -> MOBHANGS1...373
## * MOBHANGS2 -> MOBHANGS2...374
## Rows: 28982 Columns: 405
## -- Column specification --------------------------------------------------------
## Delimiter: ";"
## chr (4): POND, TYPOSQT, TYPLOG, TYPLOG2
## dbl (401): INTER, TELFIXE, OPFIXE, FRANCE_TEL, MICRO, PORTABLE, INTERNET, HA...
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
df2 <- df[ (df$annee %in% c("2013")),c("INTER","ABILITY","SEXE", "AGGLO5","DIPL5","PCS8EGO","REVTOT7", "AGE6FUZ","ORDIJOB" )]
Afin d’économiser en code nous avons réalisé la question 2 et 3 simultanément en selectionnant l’année 2013 et en selectionant le numéro d’observation et la question choisie sur l’Habilité de l’individu a utiliser internet
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
df3 = df2 %>% dplyr::sample_frac(.95)
à l’aide de la fonction sample_frac du package dplyr nous gardons au hasard 95% de nos individus
Prenoms <- read.csv2("C:/Users/franc/OneDrive/Bureau/M1/analyse de données/TD/Prenoms.csv")
prenoms_1 <- Prenoms[Prenoms$X04_fréquence>0,]
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.0 v stringr 1.4.0
## v tidyr 1.1.4 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
df3$INTER2[df3$SEXE == 1] <- str_to_title(sample(prenoms_1$X01_prenom[prenoms_1$X02_genre=="m"],nrow(df3[df3$SEXE == 1,]),prob=prenoms_1$X04_fréquence[prenoms_1$X02_genre=="m"]))
df3$INTER2[df3$SEXE == 2] <- str_to_title(sample(prenoms_1$X01_prenom[prenoms_1$X02_genre=="f"],nrow(df3[df3$SEXE == 2,]),prob=prenoms_1$X04_fréquence[prenoms_1$X02_genre=="f"]))
sum(duplicated(df3$INTER))
## [1] 0
rownames(df3) = df3$INTER2
Nous pouvons observer que notre variable Abiliy est au format numérique, ainsi nous utilisons la librairie questionr pour la transformer en facteur ce qui permettra de remplacer les numéros des questions par leurs initulées et ainsi permettre de faciliter l’interprétation et la compréhension de nos statistiques descriptives.
df3$ABILITY_F <- as.character(df3$ABILITY)
df3$ABILITY_F[df3$ABILITY == "1"] <- "Très compétent"
df3$ABILITY_F[df3$ABILITY == "2"] <- "Assez compétent"
df3$ABILITY_F[df3$ABILITY == "3"] <- "Pas très compétent"
df3$ABILITY_F[df3$ABILITY == "4"] <- "Pas du tout compétent"
df3$ABILITY_F[df3$ABILITY == "5"] <- "Ne sait pas"
df3$ABILITY_F <- factor(df3$ABILITY_F)
df3$SEXE_F <- as.character(df3$SEXE)
df3$SEXE_F[df3$SEXE == "1"] <- "Homme"
df3$SEXE_F[df3$SEXE == "2"] <- "Femme"
df3$SEXE_F <- factor(df3$SEXE_F)
## Recodage de df3$AGGLO5 en df3$AGGLO5_F
df3$AGGLO5_F <- as.character(df3$AGGLO5)
df3$AGGLO5_F[df3$AGGLO5 == "1"] <- "moins de 2000 habitants"
df3$AGGLO5_F[df3$AGGLO5 == "2"] <- "de 2000 à 100 000 habitants"
df3$AGGLO5_F[df3$AGGLO5 == "3"] <- "de 2000 à 100 000 habitants"
df3$AGGLO5_F[df3$AGGLO5 == "4"] <- "100 000 habitants et plus"
df3$AGGLO5_F[df3$AGGLO5 == "5"] <- "100 000 habitants et plus"
df3$AGGLO5_F <- factor(df3$AGGLO5_F)
## Recodage de df3$DIPL5 en df3$DIPL5_F
df3$DIPL5_F <- as.character(df3$DIPL5)
df3$DIPL5_F[df3$DIPL5 == "1"] <- "Aucun"
df3$DIPL5_F[df3$DIPL5 == "2"] <- "Bepc"
df3$DIPL5_F[df3$DIPL5 == "3"] <- "Bac"
df3$DIPL5_F[df3$DIPL5 == "4"] <- "Diplôme du supérieur"
df3$DIPL5_F[df3$DIPL5 == "5"] <- "Aucun"
df3$DIPL5_F <- factor(df3$DIPL5_F)
df3$PCS8EGO_F <- as.character(df3$PCS8EGO)
df3$PCS8EGO_F[df3$PCS8EGO == "1"] <- "Independant"
df3$PCS8EGO_F[df3$PCS8EGO == "2"] <- "Cadre supérieur"
df3$PCS8EGO_F[df3$PCS8EGO == "3"] <- "Profession intermédiaire"
df3$PCS8EGO_F[df3$PCS8EGO == "4"] <- "Employé"
df3$PCS8EGO_F[df3$PCS8EGO == "5"] <- "Ouvrier"
df3$PCS8EGO_F[df3$PCS8EGO == "6"] <- "Reste au foyer"
df3$PCS8EGO_F[df3$PCS8EGO == "7"] <- "Retraite"
df3$PCS8EGO_F[df3$PCS8EGO == "8"] <- "Eleve/Etudiant"
df3$PCS8EGO_F <- factor(df3$PCS8EGO_F)
## Recodage de df3$REVTOT7 en df3$REVTOT7_F
df3$REVTOT7_F <- as.character(df3$REVTOT7)
df3$REVTOT7_F[df3$REVTOT7 == "1"] <- "moins de 1499"
df3$REVTOT7_F[df3$REVTOT7 == "2"] <- "moins de 1499"
df3$REVTOT7_F[df3$REVTOT7 == "3"] <- "de 1500 à 2299"
df3$REVTOT7_F[df3$REVTOT7 == "4"] <- "de 2300 à 3099"
df3$REVTOT7_F[df3$REVTOT7 == "5"] <- "de 3100 à 3999"
df3$REVTOT7_F[df3$REVTOT7 == "6"] <- "4100 et plus"
df3$REVTOT7_F[df3$REVTOT7 == "7"] <- "Ne sait pas"
## Recodage de df2$AGE6FUZ en df2$AGE6FUZ_rec
df3$AGE6FUZ_F <- as.character(df3$AGE6FUZ)
df3$AGE6FUZ_F[df3$AGE6FUZ == "1"] <- "12-24 ans"
df3$AGE6FUZ_F[df3$AGE6FUZ == "2"] <- "12-24 ans"
df3$AGE6FUZ_F[df3$AGE6FUZ == "3"] <- "25-39 ans"
df3$AGE6FUZ_F[df3$AGE6FUZ == "4"] <- "40-59 ans"
df3$AGE6FUZ_F[df3$AGE6FUZ == "5"] <- "60 et plus"
df3$AGE6FUZ_F[df3$AGE6FUZ == "6"] <- "60 et plus"
df3$AGE6FUZ_F <- factor(df3$AGE6FUZ_F)
## Recodage de df3$ORDIJOB en df3$ORDIJOB_F
df3$ORDIJOB_F <- as.character(df3$ORDIJOB)
df3$ORDIJOB_F[df3$ORDIJOB == "1"] <- "Oui"
df3$ORDIJOB_F[df3$ORDIJOB == "2"] <- "Non"
df3$ORDIJOB_F[df3$ORDIJOB == "3"] <- "Ne sait pas"
df3$ORDIJOB_F[df3$ORDIJOB == "99"] <- "Ne sait pas"
df3$ORDIJOB_F <- factor(df3$ORDIJOB_F)
df3_g = df3
library(plotly)
## Warning: package 'plotly' was built under R version 4.0.5
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(ggplot2)
AB = ggplot(df3) +
aes(x = ABILITY_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur habilité à utiliser un ordinateur") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(AB)
AB
sexe= ggplot(df3) +
aes(x = SEXE_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur sexe") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(sexe)
df3_g$AGE6FUZ_F2 <- as.character(df3$AGE6FUZ)
df3_g$AGE6FUZ_F2[df3$AGE6FUZ == "1"] <- "12-17 ans"
df3_g$AGE6FUZ_F2[df3$AGE6FUZ == "2"] <- "17-24 ans"
df3_g$AGE6FUZ_F2[df3$AGE6FUZ == "3"] <- "25-39 ans"
df3_g$AGE6FUZ_F2[df3$AGE6FUZ == "4"] <- "40-59 ans"
df3_g$AGE6FUZ_F2[df3$AGE6FUZ == "5"] <- "60-69 ans"
df3_g$AGE6FUZ_F2[df3$AGE6FUZ == "6"] <- "70 ans et plus"
df3_g$AGE6FUZ_F2 <- factor(df3_g$AGE6FUZ_F2)
AGE= ggplot(df3_g) +
aes(x = AGE6FUZ_F2) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur âge") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(AGE)
AGE2= ggplot(df3) +
aes(x = AGE6FUZ_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur âge") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(AGE2)
df3_g$AGGLO5_F2 <- as.character(df3$AGGLO5)
df3_g$AGGLO5_F2[df3$AGGLO5 == "1"] <- "moins de 2000 habitants"
df3_g$AGGLO5_F2[df3$AGGLO5 == "2"] <- "de 2000 à 100 000 habitants"
df3_g$AGGLO5_F2[df3$AGGLO5 == "3"] <- "de 2000 à 100 000 habitants"
df3_g$AGGLO5_F2[df3$AGGLO5 == "4"] <- "100 000 habitants et plus"
df3_g$AGGLO5_F2[df3$AGGLO5 == "5"] <- "Paris et agglomération parisienne"
df3_g$AGGLO5_F2 <- factor(df3_g$AGGLO5_F2)
aglo= ggplot(df3_g) +
aes(x = AGGLO5_F2) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de la taille d'agglomération") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(aglo)
aglo2= ggplot(df3) +
aes(x = AGGLO5_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de la taille d'agglomération") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(aglo2)
PCS = ggplot(df3) +
aes(x = PCS8EGO_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur PCS") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(PCS)
df3_g$REVTOT7_F2 <- as.character(df3$REVTOT7)
df3_g$REVTOT7_F2[df3$REVTOT7 == "1"] <- "moins de 900"
df3_g$REVTOT7_F2[df3$REVTOT7 == "2"] <- "de 900 à 1499"
df3_g$REVTOT7_F2[df3$REVTOT7 == "3"] <- "de 1500 à 2299"
df3_g$REVTOT7_F2[df3$REVTOT7 == "4"] <- "de 2300 à 3099"
df3_g$REVTOT7_F2[df3$REVTOT7 == "5"] <- "de 3100 à 3999"
df3_g$REVTOT7_F2[df3$REVTOT7 == "6"] <- "4100 et plus"
df3_g$REVTOT7_F2[df3$REVTOT7 == "7"] <- "Ne sait pas"
revenue = ggplot(df3_g) +
aes(x = REVTOT7_F2) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Répartion des individus en fonction de leurs revenus") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(revenue)
revenue2 = ggplot(df3) +
aes(x = REVTOT7_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leurs revenus") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(revenue2)
Dip= ggplot(df3) +
aes(x = DIPL5_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur diplôme") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(Dip)
ordijob= ggplot(df3) +
aes(x = ORDIJOB_F) +
geom_bar(fill = "#FF6666") +
labs(x = "réponses", y= "Nombre d'individus" , title = "Nombre d'individus en fonction de leur utilisation d'un ordinateur dans leur travail") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplotly(ordijob)
df4 = df3[-which(df3$ABILITY_F == "Ne sait pas"),]
df4 = df4[-which(df4$REVTOT7_F == "Ne sait pas"),]
df4 = df4[-which(df4$ORDIJOB_F == "Ne sait pas"),]
library(dplyr)
freq = df4 %>%
group_by(ABILITY_F,SEXE_F) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
freq$freq = round(freq$freq * 100)
AB_SEXE = ggplot(data=freq, aes(x=ABILITY_F, y=freq, fill=SEXE_F)) +
geom_bar(stat="identity") +
labs(x = "Habilité à utiliser un ordinateur ", y = "Part d'individu", title = "Habilité à utiliser un ordinateur en fonction du sexe")+
theme(axis.text.x = element_text(angle = 45, hjust = 1))
zzzzz = AB_SEXE + labs(fill = "Sexe")
ggplotly(zzzzz)
library(dplyr)
freq2 = df4 %>%
group_by(ABILITY_F,AGGLO5_F) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
freq2$freq = round(freq2$freq * 100)
AB_AGGLO = ggplot(data=freq2, aes(x=ABILITY_F, y=freq, fill=AGGLO5_F)) +
geom_bar(stat="identity") +
labs(x = "Habilité à utiliser un ordinateur", y = "Part d'individu", title = "Habilité à utiliser un ordinateur en fonction de la taille d'agglomération") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
zzzz = AB_AGGLO + labs(fill = "Taille Agglomération")
ggplotly(zzzz)
library(tidyverse)
freq3 = df4 %>%
group_by(ABILITY_F,DIPL5_F) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
freq3$freq = round(freq3$freq * 100)
AB_DIPL = ggplot(data=freq3, aes(x=ABILITY_F, y=freq, fill=DIPL5_F)) +
geom_bar(stat="identity") +
labs(x = "Habilité à utiliser un ordinateur ", y = "Part d'individu", title = "Habilité à utiliser un ordinateur en fonction du diplôme") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
zzz = AB_DIPL + labs(fill = "Diplôme")
ggplotly(zzz)
library(tidyverse)
freq4 = df4 %>%
group_by(ABILITY_F,PCS8EGO_F) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
freq4$freq = round(freq4$freq * 100)
AB_PCS = ggplot(data=freq4, aes(x=ABILITY_F, y=freq, fill=PCS8EGO_F)) +
geom_bar(stat="identity") +
labs(x = "Habilité à utiliser un ordinateur ", y = "Part d'individu", title = "Habilité à utiliser un ordinateur en fonction de la PCS ") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
zz = AB_PCS + labs(fill = "PCS")
ggplotly(zz)
library(tidyverse)
freq5 = df4 %>%
group_by(ABILITY_F,REVTOT7_F) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
freq5$freq = round(freq5$freq * 100)
AB_REV = ggplot(data=freq5, aes(x=ABILITY_F, y=freq, fill=REVTOT7_F)) +
geom_bar(stat="identity") +
labs(x = "Habilité à utiliser un ordinateur ", y = "Part d'individu", title = "Habilité à utiliser un ordinateur en fonction du revenue ") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
z = AB_REV + labs(fill = "Revenue")
ggplotly(z)
library(tidyverse)
freq6 = df4 %>%
group_by(ABILITY_F,ORDIJOB_F) %>%
summarise(n = n()) %>%
mutate(freq = n / sum(n))
freq6$freq = round(freq6$freq * 100)
AB_ORDI = ggplot(data=freq6, aes(x=ABILITY_F, y=freq, fill=ORDIJOB_F)) +
geom_bar(stat="identity") +
labs(x = "Habilité à utiliser un ordinateur ", y = "Part d'individu", title = "Habilité à utiliser un ordinateur en fonction de son utilisation au travail") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
k = AB_ORDI + labs(fill = "Ordinateur au travail")
ggplotly(k)
k
df5 = df4[,-c(1,2,3,4,5,6,7,8,9,10,12,13,16,18)]
library(FactoMineR)
library(factoextra)
MCA(df5, ncp = 5)
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 1126 individuals, described by 4 variables
## *The results are available in the following objects:
##
## name description
## 1 "$eig" "eigenvalues"
## 2 "$var" "results for the variables"
## 3 "$var$coord" "coord. of the categories"
## 4 "$var$cos2" "cos2 for the categories"
## 5 "$var$contrib" "contributions of the categories"
## 6 "$var$v.test" "v-test for the categories"
## 7 "$ind" "results for the individuals"
## 8 "$ind$coord" "coord. for the individuals"
## 9 "$ind$cos2" "cos2 for the individuals"
## 10 "$ind$contrib" "contributions of the individuals"
## 11 "$call" "intermediate results"
## 12 "$call$marge.col" "weights of columns"
## 13 "$call$marge.li" "weights of rows"
res.mca <- MCA (df5, graph = FALSE)
print(res.mca)
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 1126 individuals, described by 4 variables
## *The results are available in the following objects:
##
## name description
## 1 "$eig" "eigenvalues"
## 2 "$var" "results for the variables"
## 3 "$var$coord" "coord. of the categories"
## 4 "$var$cos2" "cos2 for the categories"
## 5 "$var$contrib" "contributions of the categories"
## 6 "$var$v.test" "v-test for the categories"
## 7 "$ind" "results for the individuals"
## 8 "$ind$coord" "coord. for the individuals"
## 9 "$ind$cos2" "cos2 for the individuals"
## 10 "$ind$contrib" "contributions of the individuals"
## 11 "$call" "intermediate results"
## 12 "$call$marge.col" "weights of columns"
## 13 "$call$marge.li" "weights of rows"
df6 = df5
df6$revenue = df4$REVTOT7_F
df6$ordijob = df4$ORDIJOB_F
res.mc = MCA(df6, quali.sup=c(5,6), graph=T)
fviz_screeplot (res.mc, addlabels = TRUE, ylim = c (0,16))
fviz_mca_var(res.mc, col.var = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE,
ggtheme = theme_minimal())
fviz_contrib (res.mca, choice = "var", axes = 1, top = 15)
fviz_contrib (res.mca, choice = "var", axes = 2, top = 15)
fviz_mca_ind(res.mca,
geom.ind = "point", # Montre les points seulement (mais pas le "text")
col.ind = df6$ABILITY_F, # colorer by groups
palette = c("#00AFBB", "#E7B800", "#FC4E07", "#AF34F2" ),
addEllipses = TRUE, # Ellipses de concentration
legend.title = "Groups"
)